![]() | ||
Разделы: Главная Форум Железо Программы Все Релизы Даты Выпуска Ссылки |
Multiboot кабель
своими руками или как заливать ромы на GBA не имея флэш
картриджа. Вступление. В данной статье я опишу как произвести загрузку небольших ромов(максимум 256 КБайт) на вашем Геймбое не прилагая для этого каких-либо больших усилий. Выполнение данной задачи разбивается на 3 этапа: 1 этап: создание соединительного кабеля между вашим компьютером и GBA. 2 этап: настройка ПК для работы с кабелем и процедура отправки вашего рома на гба. 3 этап: создание ромов корректно выполняющихся по мультибуту. Немного о multiboote. Передача программ становится возможной благодаря встроенной функции GBA BIOSа для загрузки и запуска програмного кода даже если картридж не вставлиен. Программа загружается в регистр 2000000h и выше в GBA память и должна содержать информацию о заголовке картриджа также как и нормальный ROM картридж. Для примера: существуют игры которые позволяют играть в режим multiplayer имея всего один картридж(такие как FZero), в нашем случае источником передачи программного кода будет не GBA с картриджем, а компьютер. Передача будет производться по multiboot кабелю. Этап 1: паяем сам кабель. Для этого нам потребуется: штекер для GBA с проводом, стандартный LPT коннектор(папа) на 25 входов, мультиметр и паяльник. Берем штекер для GBA с проводом, выводим провода и прозваниваем с помощью мультиметра какой провод относится к какому входу(на рисунке ниже показан разьём гнезда GBA). Далее припаеваем провода к LPT коннектору как показано на рисунке. После этого всё собираем и окончательно проверяем мультиметром. Провод готов. ![]() Примечание: Контакт GBA(4)-PC(17) не обязателен, он служит для увеличения скорости передачи данных в два раза, всё будет отлично работать и без него. Этап 2: подключаем, заливаем. Данный кабель должен работать со всеми операционными системами, но если у вас Windows NT/2000/XP то вам необходимо установить дополнительную утилиту Userport, которая позволит программам беспрепятственно обращаться к указанным вами портам, в данном случае это LPT к которому подсоединён GBA. Установка Userport: 1. Скачиваем Userport отсюда. 2. Распаковываем во временную папку. 3. Копируем файл UserPort.SYS в папку %WINDIR%\SYSTEM32\DRIVERS 4. Запускаем файл UserPort.EXE, удаляем оттуда все эементы. 5. Заходим в Панель Управления\Система, выбираем закладку Оборудование, Диспетчер устройств, заходим в Порты (COM и LPT) и смотрим свойства LPT порта по которому вы хотите установить соединение. В Свойствах открываем закладку Ресурсы и смотрим значение паметра 'Диапазон ввода/вывода(I/O)', у меня оно равно 0378-037F. 6. Добавляем это значение в UserPort.EXE(в оба поля) и нажимаем кнопку Start. Далее для отправки ромов нам понадобиться программное обеспечение для PC. Я выбрал программу Xboo Communicator 1.00 т.к. она имеет удобный графический интерфейс и легко настраиваема. Скачиваем, в настройках указываем адрес вашего параллельного порта. ![]() Сейчас нам нужно будет что-нибудь залить на GBA, повторяю что залить можно не любой ром, а только ромы имеющие размер менее 256 Кбайт и подходящие под определённые критерии, которые мы рассмотрим на следующем этапе. Для проверки работы кабеля скачайте этот архив, созданный мной для проверки работы кабеля. В архиве находится файл boot.mb - это и есть проверочный ром и исходники этого рома, но о них позже. boot.mb переименовывать не нужно, он заливается прямо так. После окончания загрузки на экране GBA должна появиться надпись, которая свидетельствует о успешной загрузке. Этап 3: создание рома. Те, кто собирается сам создовать ромы и закачивать их с помощью multiboot кабеля могут столкнуться с определёнными проблемами, сейчас я попробую описать их: 1. При компиляции программы лудше её компилировать в файл .mb а не .gba. Хотя разницы практически никакой нет, но когда вы будете проверять ром на VisualBoy Advance то он файлы .mb запускает в multiboot режиме. Иногда бывает файл на эмуляторе отлично работает как .gba, но не работает как .mb - следовательно он не будет работать и на самой консоли. 2. После компиляции рома чтобы избежать ошибки 'probably bad header' при заливке на GBA следует установить заголовок для рома, это легко осуществимо с помощью программки gbafix. Пример использования: gbafix boot.mb -t Boot -c BOOT -m 55 -r 22 После использования этой программы проблем с заголовком больше не должно быть. 3. Если программа загружается нормально, но на GBA высвечивается пустой экран, то попробуйте в начало программы в исходный код вставить строчку 'int __gba_multiboot;', по крайней мере у меня без неё ничего не работало. Ну вот вроде и все особенности по поводу создания рома для multiboot, и помните пишите код как можно чище, т.к. GBA более придирчив чем эмулятор. И напоследок, фотографии с места действия. ![]() ![]() ![]() ![]() ![]() ![]() | Последние темы: |
| Created by Voulter ICQ:243933446 Mail:voulter@list.ru . | ||